闲扯
蒟蒻的第一道自己想出怎么建图的题!!虽然是一个没什么技术含量的图 想了想,还是写篇题解纪念一下。
题面
Solution
要求最小费用和最大费用,同时限制了流量,考虑费用流。
虚拟一个超级源点,从这个点分别向 $N$ 个任务连一条流量为 $1$ ,费用为 $0$ 的边。
虚拟一个超级汇点,才从 $N$ 个物品分别向该点连一条流量为 $1$ ,费用为 $0$ 的边。
因为每个人只能做一件,且每个工作只能做一次,所以连的边流量都为一。而第 $i$ 个人做第 $j$ 个任务获得的贡献为 $val_{i,j}$ ,所以从第 $j$ 个物品向第 $i$ 个人连一条费用为 $val_{i,j}$ 的边。
如果是求最小费用最大流,那么直接跑模板。
如果是求最大费用最大流,只需要连边时将费用换为负数,求一个最小费用最大流,然后答案再取一个相反数即可。(这个处理好秒啊,自己没想出来,还是看了题解)
Code
1 |
|
总结
这道题就是一个板子题,用来入门外加熟悉模板的。
网络流的建图方式千千万,真的好神奇的,不要满足于现在的成就,还是要多练题,找到自己做网络流的套路呢~~